6 #ifndef _CFEXPFILEHENDLER_H_ 7 #define _CFEXPFILEHENDLER_H_ 25 virtual void Read () = 0;
31 #define ERROR_RD "Error: File cannot read: " 32 std::ifstream file(path);
36 while (std::getline(file, line))
43 flines.push_back(line);
61 template<
typename TINContainer,
typename Enable =
void>
65 template<
typename TINContainer>
68 <TINContainer, typename std::enable_if<std::is_base_of<ICFEXPInpDataContBase, TINContainer>::value>::type>
79 virtual void Read ()
override;
80 virtual bool ReadProgress ()
override;
86 const std::string _inputpath;
96 template<
typename TINContainer>
99 : _inputpath(path), _content(
CFEXPDataManager<std::vector<std::string>>::SafeAllocInstance()),
100 _data_processed(false), _container(
CFEXPDataManager<TINContainer>::SafeAllocInstance(map)) { }
104 template<
typename TINContainer>
107 : _inputpath(path), _content(data),
108 _data_processed(false), _container(
CFEXPDataManager<TINContainer>::SafeAllocInstance(map)) { }
112 template<
typename TINContainer>
114 ::~CFEXPFileReader() { }
118 template<
typename TINContainer>
120 ::GetInputContainer()
127 template<
typename TINContainer>
129 ::GetFileContent() const
133 std::copy((*_content.get()).begin(), (*_content.get()).end(), std::back_inserter(*result.get()));
140 template<
typename TINContainer>
148 if(_content->empty())
149 ReadFileAndGetContent(_inputpath, *_content.get());
151 _container->ProcessLines(*_content.get());
153 _data_processed =
true;
157 template<
typename TINContainer>
166 template<
typename TINContainer>
174 #endif // !_CFEXPFILEHENDLER_H_ virtual Ptr< CFEXPFEInpContBase > GetInputContainer()=0
Definition: FEXPFileHandler.h:62
static void ReadFileAndGetContent(const std::string &path, std::vector< std::string > &flines)
Definition: FEXPFileHandler.h:29
static std::string & StrTrim(std::string &str)
Definition: FEXPCommon.cpp:119
Definition: FEXPCommon.h:276
virtual Ptr< std::vector< std::string > > GetFileContent() const =0
virtual bool ReadProgress()=0
Base interface for file reader.
Definition: FEXPFileHandler.h:20
#define FEXPCOMMON_EXCEPTION(error_text)
Definition: FEXPCommon.h:143
#define FEXPCOMMON_EMPTY_STRING
Definition: FEXPCommon.h:183
std::map< std::string, std::function< Ptr< ICFEXPSerialDataBase >()> > t_FileStructMap
Definition: FEXPSerializeData.h:15
Base container interface.
Definition: FEXPSerializeData.h:601
static bool RunProcedureTask(t_Procedure procedure, bool progressbar)
It runs the asynchronous task.
Definition: FEXPConcurency.cpp:12
Smart pointer.
Definition: FEXPCommon.h:274
#define FEXPCOMMON_DYNCAST(clsfrom, clsto, variable)
Definition: FEXPCommon.h:138